package com.iplant.aps.service.apsenum.oms;

/**
 * -- 台车订单状态
 *
 * @author PengYouWang
 * @CreateTime 2023-8-1 16:03:22
 */
public enum OMSOrderStatus {
    /**
     * 默认
     */
    Default(0, "默认"),
    /**
     * 计划订单(可以排程月计划)
     */
    HasOrder(1, "计划订单"),
    /**
     * 收到进车电报(月计划)  可以直接排程
     */
    ProductReady(2, "订单就绪"),
    /**
     * 已进厂(周计划)(月计划)  周计划已排
     */
    PlanReady(3, "计划就绪"),
    /**
     * 生产中(周计划)(月计划)
     */
    Producing(4, "生产中"),

    Suspend(5, "暂停"),

    /**
     * 已完工
     */
    FinishedWork(6, "已完工"),
    /**
     * 待出厂普查
     */
    ToOutChcek(7, "待出厂试验"),
    /**
     * 待出厂确认
     */
    ToOutConfirm(8, "待出厂确认"),
    /**
     * 已发货
     */
    ProductSend(9, "已发货"),
    /**
     * 已完工，问题项待后续关闭
     */
    PartConfirmed(10, "已完工，问题项待后续关闭");

    private int value;
    private String label;

    OMSOrderStatus(int value, String label) {
        this.value = value;
        this.label = label;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static OMSOrderStatus getEnumType(int val) {
        for (OMSOrderStatus type : OMSOrderStatus.values()) {
            if (type.getValue() == val) {
                return type;
            }
        }
        return Default;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static OMSOrderStatus getEnumType(String val) {
        for (OMSOrderStatus type : OMSOrderStatus.values()) {
            if (type.getLabel().equals(val)) {
                return type;
            }
        }
        return Default;
    }

    public int getValue() {
        return value;
    }

    public String getLabel() {
        return label;
    }
}
